home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / ccs_util.jar / com / commerceone / util / identity / NumberedVersion.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-12-09  |  2.7 KB  |  87 lines

  1. package com.commerceone.util.identity;
  2.  
  3. import java.util.StringTokenizer;
  4.  
  5. public class NumberedVersion implements Version {
  6.    private final int m_major;
  7.    private final int m_minor;
  8.    private final String m_label;
  9.  
  10.    public String toString() {
  11.       return this.m_label == null ? "" + this.m_major + "." + this.m_minor : "" + this.m_major + "." + this.m_minor + "(" + this.m_label + ")";
  12.    }
  13.  
  14.    public NumberedVersion(int major, int minor) {
  15.       this.m_major = major;
  16.       this.m_minor = minor;
  17.       this.m_label = null;
  18.    }
  19.  
  20.    public NumberedVersion(int major, int minor, String label) {
  21.       this.m_major = major;
  22.       this.m_minor = minor;
  23.       this.m_label = label;
  24.    }
  25.  
  26.    public boolean sameMajor(Version version) {
  27.       if (!(version instanceof NumberedVersion)) {
  28.          return false;
  29.       } else {
  30.          return this.m_major == ((NumberedVersion)version).m_major;
  31.       }
  32.    }
  33.  
  34.    public static NumberedVersion internalize(byte[] bytes) {
  35.       return new NumberedVersion(bytes[0], bytes[1]);
  36.    }
  37.  
  38.    public static NumberedVersion internalize(String str) {
  39.       int major = 0;
  40.       int minor = 0;
  41.       String label = null;
  42.       StringTokenizer st = new StringTokenizer(str, ".()");
  43.       if (st.hasMoreTokens()) {
  44.          String num_str = st.nextToken();
  45.          major = Integer.parseInt(num_str);
  46.       }
  47.  
  48.       if (st.hasMoreTokens()) {
  49.          String num_str = st.nextToken();
  50.          minor = Integer.parseInt(num_str);
  51.       }
  52.  
  53.       if (st.hasMoreTokens()) {
  54.          label = st.nextToken();
  55.       }
  56.  
  57.       return label == null ? new NumberedVersion(major, minor) : new NumberedVersion(major, minor, label);
  58.    }
  59.  
  60.    public int compareTo(Version version) {
  61.       if (!(version instanceof NumberedVersion)) {
  62.          return -1000;
  63.       } else if (this.m_major < ((NumberedVersion)version).m_major) {
  64.          return -1;
  65.       } else {
  66.          return this.m_major == ((NumberedVersion)version).m_major ? this.m_minor - ((NumberedVersion)version).m_minor : 1;
  67.       }
  68.    }
  69.  
  70.    public boolean equals(Object obj) {
  71.       if (!(obj instanceof NumberedVersion)) {
  72.          return false;
  73.       } else {
  74.          return this.m_major == ((NumberedVersion)obj).m_major && this.m_minor == ((NumberedVersion)obj).m_minor;
  75.       }
  76.    }
  77.  
  78.    public byte[] toBytes() {
  79.       byte[] bytes = new byte[]{(byte)this.m_major, (byte)this.m_minor};
  80.       return bytes;
  81.    }
  82.  
  83.    public boolean isPreliminary() {
  84.       return this.m_label != null;
  85.    }
  86. }
  87.